package br.com.sbc.ejb.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;

@Entity
@NamedQueries({
	@NamedQuery (name = "Voto.votosPositivosPostagem", query="select v from Voto v where v.postagem.idPostagem = :idPostagem and v.positivo = 1"),
	@NamedQuery (name = "Voto.votosNegativosPostagem", query="select v from Voto v where v.postagem.idPostagem = :idPostagem and v.negativo = 1"),
	@NamedQuery (name = "Voto.idUsuarioVotantesPostagem", query="select v.usuario.idUsuario from Voto v where v.postagem.idPostagem = :idPostagem"),
	@NamedQuery (name = "Voto.votoUsuarioPostagem", query="select v from Voto v where v.usuario.idUsuario = :idUsuario and v.postagem.idPostagem = :idPostagem"),	
	@NamedQuery (name = "Voto.votoPostagem", query="select v from Voto v where v.postagem.idPostagem = :idPostagem"),
})
public class Voto {

	@Id@GeneratedValue
	private long id;
	
	private long positivo;
	
	private long negativo;
	@OneToOne
	private Usuario usuario;
	@ManyToOne
	private Postagem postagem;
	
	/*---------------------------------*/
	public long getId() {
		return id;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public Postagem getPostagem() {
		return postagem;
	}
	public void setId(long id) {
		this.id = id;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public void setPostagem(Postagem postagem) {
		this.postagem = postagem;
	}
	public long getPositivo() {
		return positivo;
	}
	public long getNegativo() {
		return negativo;
	}
	public void setPositivo(long positivo) {
		this.positivo = positivo;
	}
	public void setNegativo(long negativo) {
		this.negativo = negativo;
	}
	
}